<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Set 数据结构</title>
</head>

<body>

</body>
<script>
    const s = new Set()
    console.log(s.size);
    const s1 = new Set(['a', 'b'])
    console.log(s1.size);
    const s3 = new Set(["a", "a", "b", "b"]);
    console.log(s3.size)
    const ary = [...s3];
    console.log(ary)
    const s4 = new Set();
    // 向set结构中添加值 使用add方法
    s4.add('a').add('b');
    console.log(s4.size)
    // 从set结构中删除值 用到的方法是delete
    const r1 = s4.delete('c');
    console.log(s4.size)
    console.log(r1);
    // 判断某一个值是否是set数据结构中的成员 使用has
    const r2 = s4.has('d');
    console.log(r2)
    // 清空set数据结构中的值 使用clear方法
    s4.clear();
    console.log(s4.size);

    // 遍历set数据结构 从中取值
    const s5 = new Set(['a', 'b', 'c']);
    s5.forEach(value => {
        console.log(value)
    })


</script>
<!-- 
    ES6 提供了新的数据结构 Set。它类似于数组，但是成员的值都是唯一的，没有重复的值。

Set本身是一个构造函数，用来生成 Set 数据结构。
const s = new Set();
Set函数可以接受一个数组作为参数，用来初始化。
const set = new Set([1, 2, 3, 4, 4]);
实例方法

● add(value)：添加某个值，返回 Set 结构本身

● delete(value)：删除某个值，返回一个布尔值，表示删除是否成功

● has(value)：返回一个布尔值，表示该值是否为 Set 的成员

● clear()：清除所有成员，没有返回值 
const s = new Set();
s.add(1).add(2).add(3); // 向 set 结构中添加值
s.delete(2) // 删除 set 结构中的2值
s.has(1) // 表示 set 结构中是否有1这个值 返回布尔值
s.clear() // 清除 set 结构中的所有值

遍历

Set 结构的实例与数组一样，也拥有forEach方法，用于对每个成员执行某种操作，没有返回值。
s.forEach(value => console.log(value))
</html>